import { Prompts } from './prompts'

export const avatars = [
    {
        id: '001',
        name: "Jane Doe",
        gender: 'female',
        headImage: '/head/jane_doe.png',

        useTools: false,
        prompt: "I want you to act as an expert in vocational education, named Jane Doe. I will type questions and you will reply with what a great teacher should answer.\n Do not reply in any other languages but english only, whatever what I say. \n Keep anwser in 60 words at most.",
        // prompt: "I want you to act as a english teacher, named Jane Doe. I will type questions and you will reply with what a great teacher should answer.\n Do not reply in any other languages but english only, whatever what I say. \n Keep anwser in 60 words at most.",

        model: "https://models.readyplayer.me/61d832a31ee1d0492ac53324.glb?morphTargets=ARKit,Oculus+Visemes,mouthOpen,mouthSmile,eyesClosed,eyesLookUp,eyesLookDown&textureradiusLimit=1024&textureFormat=png",
        voice: 'en-US-AvaNeural'
    },
    {
        id: '002',
        name: "John Doe",
        gender: 'male',
        headImage: '/head/john_doe.png',

        useTools: false,
        prompt: "I want you to act as a math teacher, named John Doe. I will type questions and you will reply with what a great teacher should answer.\n Do not reply in any other languages but english only, whatever what I say. \n Keep anwser in 60 words at most.",

        model: "https://models.readyplayer.me/61d832a31ee1d0492ac53324.glb?morphTargets=ARKit,Oculus+Visemes,mouthOpen,mouthSmile,eyesClosed,eyesLookUp,eyesLookDown&textureradiusLimit=1024&textureFormat=png",
        voice: 'en-US-AndrewNeural'
    },
    {
        id: '003',
        name: "Elizabeth Smith",
        gender: 'female',
        headImage: '/head/elizabeth_smith.png',

        useTools: false,
        prompt: "I want you to act as a physcis teacher, named Elizabeth Smith. I will type questions and you will reply with what a great teacher should answer.\n Do not reply in any other languages but english only, whatever what I say. \n Keep anwser in 60 words at most.",

        model: "https://models.readyplayer.me/61d832a31ee1d0492ac53324.glb?morphTargets=ARKit,Oculus+Visemes,mouthOpen,mouthSmile,eyesClosed,eyesLookUp,eyesLookDown&textureradiusLimit=1024&textureFormat=png",
        voice: 'en-US-AvaNeural'
    },
    {
        id: '004',
        name: "John Smith",
        gender: 'male',
        headImage: '/head/john_smith.png',

        useTools: false,
        prompt: "I want you to act as a biology teacher, named John Smith. I will type questions and you will reply with what a great teacher should answer.\n Do not reply in any other languages but english only, whatever what I say. \n Keep anwser in 60 words at most.",

        model: "https://models.readyplayer.me/61d832a31ee1d0492ac53324.glb?morphTargets=ARKit,Oculus+Visemes,mouthOpen,mouthSmile,eyesClosed,eyesLookUp,eyesLookDown&textureradiusLimit=1024&textureFormat=png",
        voice: 'en-US-AndrewNeural'
    },
    {
        id: '005',
        name: "Altair",
        gender: 'male',
        headImage: '/head/02.png',

        useTools: true,
        provider: 'openai',
        prompt: Prompts.Solar.replace('teacher_name', 'Altair'),

        model: "https://models.readyplayer.me/61d832a31ee1d0492ac53324.glb?morphTargets=ARKit,Oculus+Visemes,mouthOpen,mouthSmile,eyesClosed,eyesLookUp,eyesLookDown&textureradiusLimit=1024&textureFormat=png",
        voice: 'en-US-AndrewNeural'
    },
    {
        id: '006',
        name: "NieR",
        gender: 'female',
        headImage: '/head/05.png',

        useTools: true,
        provider: 'openai',
        prompt: Prompts.Solar.replace('teacher_name', 'NieR'),

        model: "https://models.readyplayer.me/65e7c8ddb8a463791b8a0ab4.glb?morphTargets=ARKit,Oculus+Visemes,mouthOpen,mouthSmile,eyesClosed,eyesLookUp,eyesLookDown&textureradiusLimit=1024&textureFormat=png",
        voice: 'en-US-AvaNeural'
    }
]

export type Avatar = (typeof avatars)[number]

const radiusRef = 1
const distanceRef = 30

const periodRef = 1 // 1day = 24hours

export const stars: { [key: string]: unknown } = {
    Sun: {
        // radius: radiusRef * 109,
        radius: radiusRef * 10,
        distance: 0,

        rotationPeriod: periodRef * 27.3,
        revolutionPeriod: 0
    },

    Mercury: {
        radius: radiusRef * 0.383,
        distance: distanceRef * 0.39,

        rotationPeriod: periodRef * 58.6,
        revolutionPeriod: periodRef * 87.97,
    },

    Venus: {
        radius: radiusRef * 0.949,
        distance: distanceRef * 0.72,

        rotationPeriod: periodRef * 243,
        revolutionPeriod: periodRef * 224.7,
    },

    Earth: {
        radius: radiusRef,
        distance: distanceRef,

        rotationPeriod: periodRef,
        revolutionPeriod: periodRef * 365.2,
    },

    Moon: {
        radius: radiusRef * 0.273,
        distance: distanceRef * 0.00026,

        rotationPeriod: periodRef * 27.3,
        revolutionPeriod: periodRef * 27.3,
    },

    Mars: {
        radius: radiusRef * 0.532,
        distance: distanceRef * 1.52,

        rotationPeriod: periodRef * 1.025,
        revolutionPeriod: periodRef * 365 * 1.88,
    },

    Jupiter: {
        radius: radiusRef * 11.21,
        distance: distanceRef * 5.2,

        rotationPeriod: periodRef * 0.4125,
        revolutionPeriod: periodRef * 365 * 11.86,
    },

    Saturn: {
        radius: radiusRef * 9.45,
        distance: distanceRef * 9.58,

        rotationPeriod: periodRef * 0.445833333333333,
        revolutionPeriod: periodRef * 365 * 29.46,
    },

    Uranus: {
        radius: radiusRef * 4.01,
        distance: distanceRef * 19.18,

        rotationPeriod: periodRef * 0.716666666666667,
        revolutionPeriod: periodRef * 365 * 84,
    },

    Neptune: {
        radius: radiusRef * 3.88,
        distance: distanceRef * 30.07,

        rotationPeriod: periodRef * 0.670833333333333,
        revolutionPeriod: periodRef * 365 * 164.81,
    }
}